package cn.kgc.mapper;

import cn.kgc.entity.GameNum;
import cn.kgc.entity.Order;
import cn.kgc.entity.Shop;
import cn.kgc.entity.UserB;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface UserMapper {

    //收藏验证
    Integer scCheck(@Param("userId")Integer userId,@Param("shopId")Integer shopId);

    //上传头像
    int uploadHead(@Param("id")Integer id,@Param("pic")String pic);

    //根据Id
    Shop getNumPwdById(Integer id);

    //根据姓名修改角色金额
    int updateNumByName(@Param("zNum") Integer zNum, @Param("uName") String uName);

    //根据名字查对象
    UserB getUserByUName(String uName);

    //查询金额方法
    int getGold(Integer id);

    //注册
    int userAdd(UserB user);

    //登陆
    UserB login(@Param("userName") String userName, @Param("pwd") String pwd);

    //查询所有商品信息/分页
    List<Shop> shopList(@Param("startIndex") Integer startIndex, @Param("pageSize") Integer pageSize, @Param("name1") String name1);

    //查找总条数
    int totalCount(@Param("name1") String name1);

    //查找总游戏名称
    List<GameNum> gnList();

    @Transactional
        //账号发布
    int addShop(Shop s);

    //查询单个商品信息
    Shop getShop(int id);

    //查找个人信息
    UserB getUser(@Param("userName") String userName, @Param("pwd") String pwd);

    //用户名唯一验证
    int checkUName(String uName);

    //账号唯一验证
    int checkUserName(String userName);

    //查找个人信息
    UserB getUserg(String uName);

    //充值
    @Transactional
    int cMoney(@Param("uName") String uName,@Param("gold")double gold);

    //修改账号状态
    int updateShopStatus(@Param("id") int id,@Param("status") int status);

    Shop getNumPwd(Integer id);
    //根据用户名查到他手下的商品
    UserB getShopList(int id);

    List<Shop>getShopList2(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize, @Param("id") int id);

    //查询总条数
    int getShopCount(int id);

    //是否商品验证
    int checkShop(int id);

    @Transactional
        //根据ID下架账号
    //根据ID下架账号
    int deleteShop(int id);

    @Transactional
    //根据商品ID修改商品信息
    int updateShop(Shop shop);

    //模糊查询的
    List<Shop> moHuList(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize,@Param("title") String title);

    //模糊查询的总条数
    int moHuTotalCount(@Param("title1")String title1);

    //收藏商品的方法
    int scShop(@Param("userId") Integer userId,@Param("shopId") Integer shopId);

    //收藏商品二
    int scShop2(@Param("userId") Integer userId,@Param("shopId") Integer shopId);


    //收藏列表方法
    List<Shop> getSCShopList(int userId);

    //收藏列表总条数
    //int getTotalSCShopCount(int userId);

    //移除收藏
    int deleteSCShop(@Param("userId") Integer userId, @Param("shopId") int shopId);

    //移除收藏2
    int delete2SCShop(@Param("shopId") Integer shopId);

    UserB getUserByName(String userName);

    //查询订单列表方法
    List<Order> getSCOrdersList(int userId);

    Shop selectOrderInfo(int id);

    double findShopPrice(int id);

    //添加订单
    void addUserOrder(@Param("uid") Integer uid, @Param("pid") int pid, @Param("hour") Integer hour, @Param("zmoney") double zmoney);

    //更改用户可用余额
    int upDateMoney(@Param("zgoldn") Double zgoldn, @Param("id") int id);

    //删除订单
    int deleteOrders(@Param("userId") Integer userId, @Param("shopId") Integer shopId);
}
